<?php

require_once($_SESSION['dir'] . "/fotos/Clases/ClassAlbum.php");
require_once($_SESSION['dir'] . "/fotos/Clases/ClassFoto.php");

/*
 * Fachada logica para el modulo Gestion de Fotos
 * Version 1.0
 */

class FotosFachada {

    private static $instance;

    private function __construct() {
        
    }

    public static function getInstance() { //metodo Singleton
        if (!isset(self::$instance)) {
            $c = __CLASS__;
            self::$instance = new $c;
        }
        return self::$instance;
    }

    /**
     * Función que devuelve un array asociativo con los id's y nombres 
     * de los albumes dado el tipo de entidad y su clave.
     * Si existe algún error devuelve NULL.
     * @param string $tipo_ente
     * @param string $clave
     * @return array() 
     */
    public function getNombresAlbum($tipo_ente, $clave) {
        if ($lista = ClassAlbum::getListaAlbums($tipo_ente, $clave))
            RETURN $lista;
        RETURN NULL;
    }
    
    public function getPersonasFoto($ID_foto) {
        if ($lista = ClassFoto::getPersonasFoto($ID_foto))
            RETURN $lista;
        RETURN NULL;
    }

    public function crearAlbumPerfil($nombre, $lugar, $usuario) {
        $perfil = new Perfil($usuario);
        $ok = $perfil . crearAlbum($nombre, $lugar);
        if (!ok)
            RETURN FALSE;
        RETURN TRUE;
    }

    public function getNombresFotos($id_album) {
        $Album = new ClassAlbum($id_album);
        $Album->cargarFotos();
        if ($lista = $Album->getFotos())
            RETURN $lista;
        RETURN NULL;
    }

    public function getLugarAlbum($id) {
        $album = new ClassAlbum($id);
        RETURN $album->getLugar();
    }

    public function getNombreAlbum($id) {
        $album = new ClassAlbum($id);
        RETURN $album->getNombre();
    }
    
     public function getIdMuroAlbum($id) {
        $album = new ClassAlbum($id);
        RETURN $album->getIdMuro();
    }
    
     public function getIdMuroFoto($id) {
        $foto = new ClassFoto($id);
        RETURN $foto->getIdMuro();
    }

    public function editarAlbum($id, $nombre, $lugar) {
        $album = new ClassAlbum($id);
        $ok=$album->updateDatos($nombre,$lugar);
        
        if(!$ok) 
            RETURN FALSE;
        
        RETURN TRUE;
    }
    
    public function borrarFoto($id_foto,$id_album){
        $album= new ClassAlbum($id_album);
        $album->eliminarFoto($id_foto);
    }
    
   public function getFoto($id){
      return ClassFoto::getFoto($id); 
   }

}

?>
